package com.skyline.wo.dao.impl;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;

import com.skyline.base.dao.impl.BaseDaoImpl;
import com.skyline.base.type.ResourceType;
import com.skyline.wo.dao.ResourceDao;

@Repository("resourceDao")
public class ResourceDaoImpl extends BaseDaoImpl implements ResourceDao {

	@Value("${ResourceDao.updateVisitNumOfOne}")
	private String updateVisitNumOfOneSql;

	@Value("${ResourceDao.updateUpOfOne}")
	private String updateUpOfOneSql;

	@Value("${ResourceDao.updateDownOfOne}")
	private String updateDownOfOneSql;

	@Value("${ResourceDao.updateCommentNumAdd}")
	private String updateCommentNumAddSql;

	@Value("${ResourceDao.updateCommentNumMinus}")
	private String updateCommentNumMinusSql;

	@Value("${ResourceDao.updateShareNumOfOne}")
	private String updateShareNumOfOneSql;

	private void update(String sqlToFormat, ResourceType type, Long id) {
		String sql = genSql(sqlToFormat, type.toString().toLowerCase());
		// System.out.println(sqlToFormat);
		jdbcTemplate.update(sql, id);
	}

	@Override
	public void updateVisitNumOfOne(ResourceType type, Long id) {
		update(updateVisitNumOfOneSql, type, id);
	}

	@Override
	public void updateUpOfOne(ResourceType type, Long id) {
		update(updateUpOfOneSql, type, id);
	}

	@Override
	public void updateDownOfOne(ResourceType type, Long id) {
		update(updateDownOfOneSql, type, id);
	}

	@Override
	public void updateCommentNumAdd(ResourceType type, Long id) {
		update(updateCommentNumAddSql, type, id);
	}

	@Override
	public void updateCommentNumMinus(ResourceType type, Long id) {
		update(updateCommentNumMinusSql, type, id);
	}

	@Override
	public void updateShareNumOfOne(ResourceType type, Long id) {
		update(updateShareNumOfOneSql, type, id);
	}

}
